package cn.snmp.mutual.uk.stack;

import java.io.*;
import java.util.*;

import cn.snmp.mutual.uk.event.RequestPduListener;
import cn.snmp.mutual.uk.event.TrapListener;

public interface SnmpContextBasisFace {
    public static final String version_id = "@(#)$Id: SnmpContextBasisFace.java,v 3.9 2006/11/29 16:25:19 birgit Exp $ Copyright Westhawk Ltd";
    public static final int DEFAULT_PORT = 161;
    public static final String STANDARD_SOCKET = "Standard";
    public static final String TCP_SOCKET = "TCP";
    public static final int MAXPDU = 20;
    public static final int MSS = 1472;

    int getVersion();

    String getHost();

    int getPort();

    String getBindAddress();

    String getTypeSocket();

    String getSendToHostAddress();

    String getReceivedFromHostAddress();

    boolean addPdu(final Pdu p0) throws IOException, PduException;

    boolean removePdu(final int p0);

    byte[] encodePacket(final byte p0, final int p1, final int p2, final int p3, final Enumeration p4, final Object p5) throws IOException, EncodingException;

    void sendPacket(final byte[] p0);

    void destroy();

    boolean isDestroyed();

    void addTrapListener(final TrapListener p0) throws IOException;

    void removeTrapListener(final TrapListener p0) throws IOException;

    void addTrapListener(final TrapListener p0, final int p1) throws IOException;

    void removeTrapListener(final TrapListener p0, final int p1) throws IOException;

    void addTrapListener(final TrapListener p0, final ListeningContextPool p1) throws IOException;

    void removeTrapListener(final TrapListener p0, final ListeningContextPool p1) throws IOException;

    void addRequestPduListener(final RequestPduListener p0) throws IOException;

    void removeRequestPduListener(final RequestPduListener p0) throws IOException;

    void addRequestPduListener(final RequestPduListener p0, final int p1) throws IOException;

    void removeRequestPduListener(final RequestPduListener p0, final int p1) throws IOException;

    void addRequestPduListener(final RequestPduListener p0, final ListeningContextPool p1) throws IOException;

    void removeRequestPduListener(final RequestPduListener p0, final ListeningContextPool p1) throws IOException;

    Pdu processIncomingPdu(final byte[] p0) throws DecodingException, IOException;

    Object clone() throws CloneNotSupportedException;

    String getHashKey();
}
